6.0 代理开发(Agent Development)
本章介绍 LangChain 代理的开发工具、测试方法和用户界面。
概述
开发 LangChain 代理不仅需要编写代码,还需要一套完整的开发工具链来支持调试、测试和用户交互。本章将介绍 LangChain 生态系统中的三个核心开发组件:
┌─────────────────────────────────────────────────────────────────┐
│ Agent 开发工具链 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │
│ │ LangSmith │ │ Test │ │ Chat UI │ │
│ │ Studio │ │ │ │ │ │
│ ├─────────────────┤ ├─────────────────┤ ├─────────────────┤ │
│ │ - 可视化调试 │ │ - 单元测试 │ │ - 对话界面 │ │
│ │ - 实时交互 │ │ - 集成测试 │ │ - 工具可视化 │ │
│ │ - 状态检查 │ │ - 轨迹评估 │ │ - Artifact 展示 │ │
│ │ - 时间旅行 │ │ - LLM 裁判 │ │ - 生产部署 │ │
│ └─────────────────┘ └─────────────────┘ └─────────────────┘ │
│ │
│ 开发调试 质量保证 用户交互 │
│ │
└─────────────────────────────────────────────────────────────────┘开发工作流
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ 编写代码 │────▶│ Studio │────▶│ 测试 │────▶│ Chat UI │
│ │ │ 可视化调试 │ │ 验证行为 │ │ 用户交互 │
└─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘
▲ │ │ │
└───────────────────┴───────────────────┴───────────────────┘
迭代改进本章内容
| 章节 | 内容 | 说明 |
|---|---|---|
| 6.1 LangSmith Studio | 可视化开发环境 | Agent IDE,支持图可视化、状态检查、时间旅行调试 |
| 6.2 Test | 测试策略 | 单元测试、集成测试、轨迹评估、LLM 裁判 |
| 6.3 Agent Chat UI | 聊天界面 | 基于 Next.js 的 Web 应用,支持工具可视化和 Artifact 渲染 |
工具概览
LangSmith Studio
专业的 Agent IDE,提供:
- 图架构可视化:查看代理执行流程
- 实时交互:无需部署即可测试
- 时间旅行调试:从任意步骤重新运行
- 热重载:代码更改自动生效
bash
# 启动开发服务器
langgraph dev测试框架
支持多种测试策略:
- 单元测试:Mock 模型,快速反馈
- 集成测试:真实 LLM,端到端验证
- 轨迹评估:验证代理行为一致性
- LLM 裁判:定性评估代理表现
python
# Mock 测试示例
from langchain_core.language_models import GenericFakeChatModel
fake_model = GenericFakeChatModel(
messages=iter([AIMessage(content="Mock response")])
)Agent Chat UI
开源聊天界面,支持:
- 多语言代理:Python 和 TypeScript
- 工具可视化:自动渲染工具调用
- Artifact 渲染:侧边面板展示内容
- 生产就绪:支持多种认证方式
bash
# 创建聊天界面项目
npx create-agent-chat-app --project-name my-chat-ui快速开始
1. 创建代理
python
# src/agent.py
from langgraph.graph import StateGraph, MessagesState, START, END
from langchain_openai import ChatOpenAI
from langchain_core.tools import tool
@tool
def search(query: str) -> str:
"""搜索信息"""
return f"搜索结果: {query}"
model = ChatOpenAI(model="gpt-4o").bind_tools([search])
# 构建图
graph = StateGraph(MessagesState)
# ... 添加节点和边 ...
agent = graph.compile()2. 使用 Studio 调试
bash
# 启动开发服务器
langgraph dev
# 访问 Studio
# https://smith.langchain.com/studio/?baseUrl=http://127.0.0.1:20243. 编写测试
python
# tests/test_agent.py
import pytest
from langchain_core.language_models import GenericFakeChatModel
def test_agent_response():
fake_model = GenericFakeChatModel(...)
agent = create_agent(model=fake_model)
result = agent.invoke({"messages": [{"role": "user", "content": "hi"}]})
assert len(result["messages"]) > 04. 启动 Chat UI
bash
# 创建并启动聊天界面
npx create-agent-chat-app --project-name my-chat
cd my-chat && pnpm dev推荐学习路径
- 开发阶段:使用 LangSmith Studio 进行可视化调试
- 测试阶段:编写单元测试和集成测试
- 交付阶段:使用 Agent Chat UI 提供用户界面